home *** CD-ROM | disk | FTP | other *** search
/ MacWorld: Complete Mac Interactive / Macworld Complete Mac Interactive CD)(1994).iso / The Best of BMUG / Utilities / Text and Speech / Alpha.5.76 / Tcl / SystemCode / strings.tcl < prev    next >
Text File  |  1994-03-08  |  2KB  |  64 lines

  1. #=============================================================================
  2. # 'Strings' commands - Thanks, Mark Nagata
  3. #=============================================================================
  4.  
  5. proc setPrefix {} {
  6.     global prefixString
  7.     if {[catch {prompt "New Prefix String:" $prefixString} res] == 1} return
  8.     set prefixString $res
  9. }
  10.  
  11. proc setSuffix {} {
  12.     global suffixString
  13.     if {[catch {prompt "New Suffix String:" $suffixString} res] == 1} return
  14.     set suffixString $res
  15. }
  16.  
  17. proc insertSuffix {} {doSuffix insert}
  18. proc removeSuffix {} {doSuffix remove}
  19. proc doSuffix {which} {
  20.     global suffixString
  21.     set suff [quoteExpr $suffixString]
  22.     set pts [getEndpts]
  23.     set start [lindex $pts 0]
  24.     set end [lindex $pts 1]
  25.     set start [lineStart $start]
  26.     set end [nextLineStart [expr $end-1]]
  27.     set text [getText $start $end]
  28.     deleteText $start $end
  29.     if {$which == "insert"} then {
  30.         set str ${suffixString}\r
  31.         regsub -all \r $text $str text
  32.     } else {
  33.         set str ${suff}\r
  34.         regsub -all $str $text \r text
  35.     }
  36.     insertText $text
  37.     select $start [expr {$start+[string length $text]}]
  38. }
  39.  
  40.  
  41. proc insertPrefix {} {doPrefix insert}
  42. proc removePrefix {} {doPrefix remove}
  43. proc doPrefix {which} {
  44.     global prefixString
  45.     set pref [quoteExpr $prefixString]
  46.     if {[set start [getPos]] == [set end [selEnd]]} {
  47.         set end [nextLineStart $start]
  48.     }
  49.     set start [lineStart $start]
  50.     if {[lookAt [expr $end-1]] == "\r"} {incr end -1}
  51.     set text [getText $start $end]
  52.     if {$which == "insert"} then {
  53.         set str \r$prefixString
  54.         regsub -all \r $text $str text
  55.         replaceText    $start $end $prefixString$text
  56.     } else {
  57.         regsub -all \r$pref $text \r text
  58.         regsub -all ^$pref $text "" text
  59.         replaceText $start $end $text
  60.     }
  61.     select $start [nextLineStart [getPos]]
  62. }
  63.  
  64.